1.1 Go语言的设计初衷与发展历程
本节我们主要针对:Go
语言是怎么产生的?Go
语言的发展怎么样?两个方面进行探讨。
通过本节的学习帮助我们了解Go
语言的前世今生,也便于我们之后对于Go
语言的理解。
设计初衷
要了解Go
语言的设计初衷,我们需要先了解一下设计时的背景。
2007
年的Google
业务已经做的很大。像这种规模的团队,代码可能已经多到很难维护,一个程序或者软件就可能多达上百万行代码。
在这种背景下,出现了很多问题:
代码复杂,很多系统难以维护
软件规模变大,编译一次都需要很长时间
开发效率低下,现有语言实现一个简单的功能都需要写很多代码
资源占用增大,由于语言的特性导致每一个应用都需要占用很多服务器
基于上面的问题,Google
开始了Go
语言的设计,主要就是解决上面的问题。所以在开始设计的时候,Go
语言就定下了基调,它需要解决下面的问题,同时也是它具备的特性:
代码简洁
简单易学
编译快速
开发效率极高
并发编程简单
资源占用极低
我们也可以看到,现在版本的Go
语言可以说基本实现了上面的要求,这也是它得以快速发展的关键。
我们从 Go
语言的命名也基本可以看出其特性。Go
语言的命名来自于 gopher
,这是一种生活在加拿大的小地鼠,它最大的特点就是挖洞的速度特别快,所以进行简写之后,将这门变成语言命名为了 Go
发展历程
Go
语言在2007
年被提出来以后,开始了内部开发工作。它的关键历程可以分为下面几个阶段:
2007年9月2日
:在Google
内部开始开发。2009年11月10日
:正式以开源形式发布。2012年3月28日
:Go 1.0
版本发布,这是第一个稳定的发行版,包含了基础的语言特性和标准库。2015年8月19日
:Go 1.5
版本发布,引入了重要的新特性,如vendor目录支持和新的内存模型。2016年2月17日
:Go 1.7
版本发布,增加了新的错误处理模式,并对性能进行了优化。2018年2月16日
:Go 1.10
版本发布,包含了对Modules
的支持,这是全新的依赖管理方式。2019年2月25日
:Go 1.13
版本发布,增加了对arm64
架构的官方支持,并对性能进行了优化。2020年1月29日
:Go 1.15
版本发布,引入了新的错误处理方式,并对性能进行了优化。2022年2月15日
:Go 1.18
版本发布,支持泛型,并对编译器和运行时进行了优化。2022年8月2日
:Go 1.19
版本发布,对泛型性能进行了优化,以及各种性能及实现的改进。2023年2月2日
:Go 1.20
版本发布,支持切片与数组的转换,解决了泛型引入所导致的编译速度降低问题。2024年2月6日
:Go 1.22
版本发布,对for
循环进行了更新,并对编译进行了进一步优化。
从上面的版本发布日程我们可以看出,Go
语言的发布还是很频繁的。比较重要的一点是他们的初衷没有改变,可以看到性能优化是他们一直追求的。
我们可以通过 点击这里 查看Go
语言详细的版本发布历史,通过版本发布历史我们可以清晰的了解到Go
语言的发展历程。